/*
 * Pacote.cpp
 *
 *  Created on: 20/08/2012
 *      Author: Andre Bonfatti
 */

#include "Pacote.h"

Pacote::Pacote(){
	dataPacote = dataPacote.getDataSistema();
	vacinas_adicionadas = 0;
	cliente.listarPacientes();
	iVacina = vacinas.end();
	/*int cod;
	cin >> cod;
	cout << "Informe a qual paciente se refere este pacote\n" << endl;
	paciente = cliente.getPacienteByCodigo(cod);*/
}

Vacina Pacote::removeVacina(Vacina v){
	return v;
}

Vacina Pacote::addVacina(Vacina v){
	vacinas.push_front(v);
	return v;
}

void Pacote::sugerirPacote(){
	int idade = paciente.getIdade();

	list<Vacina>::iterator i = vacinas.begin();
	while (i != vacinas.end()){
		if (idade == (*i).getIdade()){
			addVacina(*i);
		} else {
//			if  ((idade >= (*i).getIdade() - 1 && (*i).getIdade() + 1 >= idade) && (6 >= paciente.getDataNascimento().getMes() || 6 >= paciente.getDataNascimento().getMes()))
				addVacina(*i);
		}
	}
}

void Pacote::aceitarPacote(Pacote p){
	//Atualiza a agenda do paciente
	int dia, mes, ano, hora, minuto;
	list<Vacina>::iterator i = vacinas.begin();
	while (i != vacinas.end()){
		(*i).consultarVacina();
		cout << "Informe a data de aplicação para esta vacina:\nDia:";
		cin >> dia;
		cout << "Mes: ";
		cin >> mes;
		cout << "Ano: ";
		cin >> ano;
		cout << "Hora: ";
		cin >> hora;
		cout << "Minuto: ";
		cin >> minuto;
		//atualiza agenda do paciente
		paciente.getAgenda().atualizarAgenda(dia, mes, ano, hora, minuto, (*i));
		i++;
	}
}

void Pacote::setCliente(Cliente c){
    cliente = Cliente(c.getNome(), c.getCPF());
}

void Pacote::setPaciente(Paciente p){
    paciente = Paciente(p);
}

bool Pacote::selecionarVacina(Vacina v){
    
    for(list<Vacina>::iterator vacinasIter = vacinas.begin(); vacinasIter != vacinas.end(); vacinasIter++){
        if((*vacinasIter).getPK() == v.getPK())
            iVacina = vacinasIter;
            return true;
    }
    
    return false;
}

void Pacote::consultarPacote(){
    
    for(list<Vacina>::iterator vacinasIter = vacinas.begin(); vacinasIter != vacinas.end(); vacinasIter++){
        (*vacinasIter).consultarVacina();
        cout << endl;
    }
}

void Pacote::novoPacote(){
    vacinas.clear();
    iVacina = vacinas.end();
    vacinas_adicionadas = 0;
}

Pacote::~Pacote(){}
